package root.repositorios;

import java.util.List;

/**
 * 
 * Interface que representa um repositorio generio
 * 
 * @param <T>
 *            Tipo que sera guardado no repositorio
 */
public interface RepositorioInterface<T> {
	/**
	 * Insere um objeto no repositorio
	 * 
	 * @param o
	 *            Objeto a ser inserido
	 */
	public void insert(T o);

	/**
	 * Remove um objeto do repositorio
	 * 
	 * @param o
	 *            Objeto a ser removido
	 */
	public void remove(T o);

	/**
	 * Procura por um objeto dentro do repositorio
	 * 
	 * @param o
	 *            Objeto a ser procurado
	 * @return Objeto se encontrado ou null caso contrario
	 */
	public T search(T o);

	/**
	 * 
	 * @return Lista contendo todos os objetos do repositorio
	 */
	public List<T> getRepositorio();

}
